/**
 * 
 */
package net.yangying.androidframework.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.widget.ImageView;

/**
 * @author yangying
 * @date 2013-5-28 下午6:30:04
 * @version 1.0
 *
 */
public class AsyncImage {

	public static void setAsyncImage(String imgUrl,HashMap<String,Bitmap> map ,RemoteResourceManager mRrm,Set<String> set, ImageView img,Bitmap bmp_default,boolean corner){
        Uri photoUri = null;
        if (imgUrl != null){
        	String imgurlmd5 = MD5Utils.md5(imgUrl);
        	if(!map.containsKey(imgurlmd5)){
                try {
                    photoUri = Uri.parse(imgUrl);
                    InputStream is=mRrm.getInputStream(photoUri);
                    Bitmap bitmap=null;
                    if(is!=null){
                        bitmap = BitmapFactory.decodeStream(is);
                        if(bitmap!=null){
                        	if(corner){
                        		Bitmap bitmap_corner=BitmapUtils.getRCB(bitmap, 8);
                        		img.setImageBitmap(bitmap_corner);
                        		if(!map.containsKey(imgurlmd5))
                                    map.put(imgurlmd5, bitmap_corner);
                        	} else {
                        		img.setImageBitmap(bitmap);
                        		if(!map.containsKey(imgurlmd5))
                                    map.put(imgurlmd5, bitmap);
                        	}
                        } else {
                        	img.setImageBitmap(bmp_default);
                        }
                    }
                    else {
                    	img.setImageBitmap(bmp_default);
                    }
                } catch (IOException e) {
                	img.setImageBitmap(bmp_default);
                    if (!set.contains(imgurlmd5)) {
                    	set.add(imgurlmd5);
                        mRrm.request(photoUri);
                    }
                } catch(Exception e)
                {
                	img.setImageBitmap(bmp_default);
                }         		
            } else {
            	Bitmap bitmap=null;
                bitmap=map.get(imgurlmd5);
                if(bitmap!=null){
                	img.setImageBitmap(bitmap);
                }
                else{
                	img.setImageBitmap(bmp_default);
                }
            }
        } else {
        	img.setImageBitmap(bmp_default);
        }
	}
}
